Program Synthesis in the Industrial World: Inductive, Incremental, Interactive

نویسندگان

  • Oleksandr Polozov
  • Sumit Gulwani
چکیده

Programming by example (PBE), or inductive synthesis is a subfield of program synthesis where specification on a target program is provided in a form of input-output examples or, more generally, constraints on the output [9]. While research in PBE dates back as far as 1980s [8], its mass-market applications only appeared in the last decade. PBE has gained prominence due to its applicability in end-user programming – enabling end users to write small scripts for automating repetitive tasks from examples. The first PBE-based product was FlashFill – a system for automatic synthesis of string transformation scripts in spreadsheets [4]. It was incorporated in Microsoft Excel 2013, which made it available to hundreds of millions of end users. FlashFill was followed by FlashExtract, a system for automated data extraction from text files [6], which was deployed in Microsoft PowerShell and Azure Operational Management Suite. The team has since developed similar technologies for numerous data wrangling domains. Deployment of a mass-market industrial application of program synthesis is a challenging process. First, an efficient implementation requires non-trivial engineering insights, which are often overlooked during development of a research prototype. Second, the development process should be fast and agile, tailoring to versatile requirements of the product/user base. Third, the underlying synthesis algorithm should be understandable to engineers responsible for product maintenance. Initial implementations of FlashFill and FlashExtract violated all these conditions, requiring more than a year of research & development done by PhDs or graduate students. This prompted us to generalize the ideas of FlashFill, FlashExtract, and their successors into FlashMeta – a framework for automatic generation of domainspecific inductive synthesizers [9]. FlashMeta made development of domain-specific PBE applications scalable, allowing us to generate a production-ready synthesis library in a few weeks instead of months. In 2015, S. Gulwani’s PROSE (“PROgram Synthesis using Examples”) group at Microsoft [1] moved from Microsoft Research to Microsoft Data Group, establishing the first R&D group in PBE-based data wrangling at the company [3]. At Data Group, we are putting our algorithmic framework at the heart of new synthesis APIs, which enable various product teams to develop novel PBE features in their applications. Such an environment turns out fruitful for new problems and insights in program synthesis, which arise only in an end-user facing and industrially deployed applications. In this presentation, we want to share some of these problems, lessons, and potential solutions with the program synthesis community.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Interactive Program Synthesis

Program synthesis from incomplete specifications (e.g. input-output examples) has gained popularity and found real-world applications, primarily due to its ease-of-use. Since this technology is often used in an interactive setting, efficiency and correctness are often the key user expectations from a system based on such technologies. Ensuring efficiency is challenging, since the highly combina...

متن کامل

Incremental Inductive Synthesis of Datalog Theories

This paper presents a logic framework for the incremental inductive synthesis of Datalog theories. It allows us to cast the problem as a process of abstract diagnosis and debugging of an incorrect theory. This process involves a search in a space, whose algebraic structure (conferred by the notion of object identity) makes easy the definition of algorithms that meet several properties that are ...

متن کامل

Towards Stepwise, Schema-Guided Synthesis of Logic Programs

We present a general strategy for stepwise, sound and progressive synthesis of logic programs from specifications by examples and properties. We particularize this to schema-guided synthesis, and state a generic synthesis theorem. We justify some design choices for the development of a particular synthesis mechanism that is guided by a Divide-and-Conquer schema, is inductive and deductive, is i...

متن کامل

Towards Stepwise, Schema-guided Synthesis of Logic Programms

We present a general strategy for stepwise, sound and progressive synthesis of logic programs from specifications by examples and properties. We particularize this to schema-guided synthesis, and state a generic synthesis theorem. We justify some design choices for the development of a particular synthesis mechanism that is guided by a Divide-and-Conquer schema, is inductive and deductive, is i...

متن کامل

A Hybrid Meta-Heuristic Method to Optimize Bi-Objective Single Period Newsboy Problem with Fuzzy Cost and Incremental Discount

In this paper the real-world occurrence of the multiple-product multiple-constraint single period newsboy problem with two objectives, in which there is incremental discounts on the purchasing prices, is investigated. The constraints are the warehouse capacity and the batch forms of the order placements. The first objective of this problem is to find the order quantities such that the expected ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2016